﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using FirebirdSql.Data.FirebirdClient;
using ZedGraph;

namespace University
{
    public partial class VPROFCOMSTUD : University.VSUM
    {
       
        int node;
        string fild;
        string admin;
        string sotc;
        string podatku;
        string dobro;
        string zahody;
        Main mForm = new Main();
        List<string> sumVudatok = new List<string>();
        List<string> sumYear = new List<string>();
        public VPROFCOMSTUD()
        {
            InitializeComponent();
        }
        public VPROFCOMSTUD(string a, string p, string s, int t, string z, string r, string w,string d)
            : base(a, p, s, t, z, r,w)
        {
            dobro = d;
            admin = a;
            podatku = p;
            sotc = s;
            zahody = z;
            node = t;
            InitializeComponent();
            comboShow.Items.Add("Видатки на доброчинність");
        }
        public override void buttonSearch_Click(object sender, EventArgs e)
        {
            if (groupPeriod.Visible == false)
            {
                if (comboShow.Text == "Видатки на доброчинність")
                    Show_charges(dobro, comboRik.Text);
            }
            base.buttonSearch_Click(sender, e);
        }
        public override void buttonAdd_Click(object sender, EventArgs e)
        {
            if (comboShow.Text == "Видатки на доброчинність")
            {
                bool check = true;
                if ((comboEMonth.Text != "") && (textERik.Text != "") && (textEVutraty.Text != ""))
                {

                    if (dobro.Contains(comboEMonth.Text + " " + textERik.Text))
                        check = false;

                    if (check == true)
                    {

                        if (dobro != "")
                            fild = dobro + '\n' + comboEMonth.Text + " " + textERik.Text + " " + textEVutraty.Text;
                        else
                            fild = comboEMonth.Text + " " + textERik.Text + " " + textEVutraty.Text;


                        FbConnection con1 = new FbConnection(mForm.str);
                        con1.Open();

                        FbCommand sqlupdate = new FbCommand("UPDATE VPROFCOMSTUD SET DOBROCHUNNIST=@DOBROCHUNNIST WHERE UNIQUE_NO = @UNIQUE_NO", con1);
                        sqlupdate.Parameters.AddWithValue("UNIQUE_NO", node);
                        sqlupdate.Parameters.AddWithValue("DOBROCHUNNIST", fild);
                        sqlupdate.ExecuteNonQuery();


                        FbCommand cmd = new FbCommand(@"SELECT * FROM VPROFCOMSTUD  where UNIQUE_NO=" + node, con1);
                        FbDataReader rdr = cmd.ExecuteReader();
                        rdr.Read();
                        dobro = rdr["DOBROCHUNNIST"].ToString();
                        rdr.Close();
                        con1.Close();

                        Show_charges(dobro, comboRik.Text);

                        textERik.Clear();
                        textEVutraty.Clear();

                        groupAdd.Visible = false;
                        buttonEnter.Enabled = true;
                    }
                    else { MessageBox.Show("Дані за цей період вже введені!"); }
                }
                else
                { MessageBox.Show("Заповніть всі поля!"); }
            }
            else
            {
                base.buttonAdd_Click(sender, e);
            }

        }
        public override void Show_piriod()
        {
            if (comboShow.Text == "Видатки на доброчинність")
                Show_charges(dobro, comboRik.Text);
            base.Show_piriod();
        }
        public override void buttonPeriod_Click(object sender, EventArgs e)
        {
            if (comboShow.Text == "Видатки на доброчинність")
                Show_charges(dobro, comboRik.Text);
            base.buttonPeriod_Click(sender, e);
        }
        public virtual void GraphTotal(ZedGraphControl zg1)
        {

            GraphPane myPane;
            myPane = zg1.GraphPane;
            myPane.Title.Text = "Сумарні видатки за роки :";
            myPane.YAxis.Title.Text = "P,grn";
            string s = comboRik.Text;
            myPane.XAxis.Title.Text = "Роки ";

            double[] a = new double[sumVudatok.Count];
            string[] b = new string[sumYear.Count];

            for (int i = 0; i < sumVudatok.Count; i++)
                a[i] = Convert.ToDouble(sumVudatok[i]);
            for (int i = 0; i < sumYear.Count; i++)
                b[i] = sumYear[i];

            BarItem curve = myPane.AddBar("Graphic", null, a, Color.Blue);
            curve.Label.IsVisible = false;
            myPane.XAxis.Type = AxisType.Text;
            myPane.XAxis.Scale.TextLabels = b;


            zg1.AxisChange();
            zg1.Invalidate();


        }

        private void buttonTotal_Click(object sender, EventArgs e)
        {
            sumYear.Clear();
            sumVudatok.Clear();

            if ((textBoxTotalZ.Text != "") && (textBoxTotalDo.Text != ""))
            {
                if (Convert.ToInt32(textBoxTotalZ.Text) <= Convert.ToInt32(textBoxTotalDo.Text))
                {
                    for (int i = Convert.ToInt32(textBoxTotalZ.Text); i <= Convert.ToInt32(textBoxTotalDo.Text); i++)
                    {
                        double temp1 = 0, temp2 = 0, temp3 = 0, temp4 = 0, temp5 = 0, temp = 0;

                        sumYear.Add(i.ToString());

                        Show_charges(admin, i.ToString());
                        for (int j = 0; j < vudatok.Count; j++)
                        { temp1 += Convert.ToInt32(vudatok[j]); }

                        Show_charges(podatku, i.ToString());
                        for (int k = 0; k < vudatok.Count; k++)
                        { temp2 += Convert.ToInt32(vudatok[k]); }

                        Show_charges(sotc, i.ToString());
                        for (int l = 0; l < vudatok.Count; l++)
                        { temp3 += Convert.ToInt32(vudatok[l]); }

                        Show_charges(zahody, i.ToString());
                        for (int q = 0; q < vudatok.Count; q++)
                        { temp4 += Convert.ToInt32(vudatok[q]); }

                        Show_charges(dobro, i.ToString());
                        for (int v = 0; v < vudatok.Count; v++)
                        { temp5 += Convert.ToInt32(vudatok[v]); }

                        temp = temp1 + temp2 + temp3 + temp4 + temp5;

                        sumVudatok.Add(temp.ToString());

                    }

                    textBoxTotalDo.Text = "";
                    textBoxTotalZ.Text = "";

                    zedGraphTotal.GraphPane.CurveList.Clear();
                    zedGraphTotal.GraphPane.GraphObjList.Clear();
                    GraphTotal(zedGraphTotal);
                }
                else
                { MessageBox.Show("Період введено неправильно!"); }
            }
            else
            { MessageBox.Show("Введіть період!"); }
        }
    }
}
